У регистратора есть профили студентов, сведения о курсах и данные о зачислении в отдельных таблицах. Составьте отчёт, в котором имя нужного студента стоит рядом с нужным курсом.
Три ваших запроса
- Найдите активные курсы Emma Li.
- Выведите список активных зачислений с именами студентов и названиями курсов.
- Подготовьте список студентов DSAI, активно зачисленных на PY101.
Подготовка PostgreSQL
- В pgAdmin откройте приложенный файл
lab6_7_setup.sqlиз папки ассистентаDSAI2202/lab6_7/и один раз выполните весь файл целиком. - Убедитесь в итоговых значениях: 22 студента, 8 курсов, 37 зачислений.
- Выполните команду настройки подключения справа. Повторяйте её при каждом новом подключении к базе данных.
- Изучите три таблицы, прежде чем объединять их.
В лабораторной 7 используется та же настройка, включая таблицы assignments, submissionsи lms_roster. Сегодня используйте три таблицы, показанные здесь. Все люди и записи вымышлены.
SET search_path TO lab6_7;SET search_path TO lab6_7;
SELECT student_id, student_name, programme
FROM students
ORDER BY student_id;SET search_path TO lab6_7;
SELECT course_code, course_title, credits
FROM courses
ORDER BY course_code;SET search_path TO lab6_7;
SELECT enrolment_id, student_id, course_code,
enrolment_status, score
FROM enrolments
ORDER BY enrolment_id;Краткий обзор трёх таблиц
students22 строки. student_id — первичный ключ.
| student_id | student_name | programme |
|---|---|---|
| S101 | Alice Wong | DSAI |
| S102 | Ben Lau | CS |
| S105 | Emma Li | CS |
courses8 строк. course_code — первичный ключ.
| course_code | course_title | credits |
|---|---|---|
| SQL101 | SQL Fundamentals | 3 |
| PY101 | Python Programming | 3 |
| WEB101 | Web Databases | 3 |
enrolments37 строк, из них 30 активных и 7 отменённых. enrolment_id — первичный ключ.
| enrolment_id | student_id | course_code | enrolment_status |
|---|---|---|---|
| E01 | S101 | SQL101 | active |
| E04 | S104 | SQL101 | withdrawn |
| E06 | S105 | PY101 | active |
enrolments.student_id → students.student_idВнешний ключ указывает на одного студента.
enrolments.course_code → courses.course_codeВнешний ключ указывает на один курс.
S101 + SQL101Alice Wong + SQL Fundamentals.
Повторяющиеся идентификаторы связывают записи; имена и названия остаются в своих таблицах. Один студент может встречаться в нескольких зачислениях.